package com.totoro.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

import com.totoro.domain.key.TutorialKey;

/**
 * 1.一个老师指导多个学生，一个学生也可以接受多个老师指导 2.会产生一个指导老师评审表对象
 * 3.指导老师排序：主指导老师为1，其他协作老师依次排列。各位老师权限相同。
 * 
 * @generated
 */
// 指导老师与毕业设计关联类
@Entity
@Table(name = "tutorial")
@IdClass(value = TutorialKey.class)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Tutorial extends BaseDomain {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * @generated
	 */
	@Id
	private Tutor tutor;// 指导老师
	/**
	 * @generated
	 */
	@Id
	private Project project;// 毕业设计
	/**
	 * @generated
	 */
	private Integer rank;// 指导老师级别
	/**
	 * @generated
	 */
	private Integer workLoad;// 工作量分
	/**
	 * @generated
	 */
	private Integer basicAbility;// 基本能力分
	/**
	 * @generated
	 */
	private Integer workAbility;// 工作能力分
	/**
	 * @generated
	 */
	private Integer achievementLevel;// 成果水平分
	/**
	 * @generated
	 */
	@Column(length = 255)
	private String remark;// 评语

	private Boolean state;// 指导成绩状态(null:未填写,false:暂存,true:提交)

	// 空构造器
	public Tutorial() {
	}

	// 带参构造器
	public Tutorial(Tutor tutor, Project project, Integer rank,
			Integer workLoad, Integer basicAbility, Integer workAbility,
			Integer achievementLevel, String remark) {
		super();
		this.tutor = tutor;
		this.project = project;
		this.rank = rank;
		this.workLoad = workLoad;
		this.basicAbility = basicAbility;
		this.workAbility = workAbility;
		this.achievementLevel = achievementLevel;
		this.remark = remark;
	}

	public Integer getRank() {
		return rank;
	}

	public void setRank(Integer rank) {
		this.rank = rank;
	}

	/**
	 * @generated
	 */
	public Integer getWorkLoad() {
		return workLoad;
	}

	/**
	 * @param workLoad
	 * @generated
	 */
	public void setWorkLoad(Integer workLoad) {
		this.workLoad = workLoad;
	}

	/**
	 * @generated
	 */
	public Integer getBasicAbility() {
		return basicAbility;
	}

	/**
	 * @param basicAbility
	 * @generated
	 */
	public void setBasicAbility(Integer basicAbility) {
		this.basicAbility = basicAbility;
	}

	/**
	 * @generated
	 */
	public Integer getWorkAbility() {
		return workAbility;
	}

	/**
	 * @param workAbility
	 * @generated
	 */
	public void setWorkAbility(Integer workAbility) {
		this.workAbility = workAbility;
	}

	/**
	 * @generated
	 */
	public Integer getAchievementLevel() {
		return achievementLevel;
	}

	/**
	 * @param achievementLevel
	 * @generated
	 */
	public void setAchievementLevel(Integer achievementLevel) {
		this.achievementLevel = achievementLevel;
	}

	/**
	 * @generated
	 */
	public String getRemark() {
		return remark;
	}

	/**
	 * @param remark
	 * @generated
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Tutor getTutor() {
		return tutor;
	}

	public void setTutor(Tutor tutor) {
		this.tutor = tutor;
	}

	public Project getProject() {
		return project;
	}

	public void setProject(Project project) {
		this.project = project;
	}

	public Boolean getState() {
		return state;
	}

	public void setState(Boolean state) {
		this.state = state;
	}

}